var DM = {}, //命名空间
GM = google.maps, GMEVENT = google.maps.event, GMCP = google.maps.ControlPosition, GMOT = google.maps.drawing.OverlayType;

/**************************************************************************************************************************/

DM.log = function(str) {

	$("#log").html(str)

}
/**************************************************************************************************************************/

DM.gismap = function(options) {// 创建对象

	var _this = {}, that = {};

	_this.config = {

		mapOpt : $.extend({//地图参数

			zoom : 17,
			disableDoubleClickZoom : true,
			draggable : true,
			center : new GM.LatLng(22.827, 108.334), //南宁
			mapTypeControl : true,
			mapTypeId : GM.MapTypeId.ROADMAP,
			draggableCursor : "default"

		}, options || {}),

		drawpolylineOpt : {//绘图轨迹参数

			strokeColor : "blue",
			strokeOpacity : 05,
			editable : true,
			zIndex : 5

		},		
		overlayType:{ //添加图层类型
			
			
		}
		

	}

	_this.map = null;
	//地图

	_this.drawingManager = null;
	//绘图管理器

	_this.tempPath = TAFFY();
	//临时存储轨迹 TAFFY对象



	/**************************************************************************************************************************/

	//创建地图
	_this.loadMap = function(container) {

		_this.map = new GM.Map(container, _this.config.mapOpt);

		return _this.map;

	}
	/**************************************************************************************************************************/

	//创建绘图管理器
	_this.loadDrawingMap = function() {

		_this.drawingManager = new GM.drawing.DrawingManager({
			drawingMode : null,
			markerOptions : {
				draggable : true
			},
			polylineOptions : _this.config.drawpolylineOpt,
			drawingControl : false,
			map : _this.map

		})

		_this.drawMapEvent();

	}
	//绘图管理器事件
	_this.drawMapEvent = function() {

		GMEVENT.addListener(_this.drawingManager, "overlaycomplete", function(e) {//绘图完成时间

			var _shape = e.overlay, _shapeType = e.type;

			if (_shapeType == GMOT.POLYLINE) {

				_this.tempPath.insert({
					id : _shape.__gm_id,
					overlay : _shape
				})


			alert(_this.tempPath().count())
				// GMEVENT.addListener(_shape,"click",function(e){

				// 	alert(1)

				// })

			}

		})
		
		
	}
	//设置绘图的类型，包括线，点，多边形
	_this.setDrawMode = function(type) {
		_this.drawingManager.setDrawingMode(type)
	}

	_this.disDraw = function() {
		DM.log("取消绘图");
		_this.setDrawMode(null);
	}
	//绘制线段
	_this.drawPolyline = function() {
		DM.log("开始绘制线段")
		_this.setDrawMode(GMOT.POLYLINE)
	}
	/**************************************************************************************************************************/
	//event

	that.drawPolyline = function() {
		_this.drawPolyline()
	}

	that.select = function() {
		_this.disDraw()
	}
	/**************************************************************************************************************************/
	//初始化
	that.init = function(mapcontainer) {

		_this.loadMap(mapcontainer)
		_this.loadDrawingMap()

	}

	return that;

}

